// 第一步：分离Reducer，创建Store(引入调试工具redux-devTool、2个中间件logger和thunk的使用)。
import { createStore,applyMiddleware } from "redux"
import rootReducer from "../reducers"
import { composeWithDevTools } from "redux-devtools-extension" // 调试工具redux-devTool

// 中间件logger
import { createLogger } from "redux-logger";

// 专门处理dispatch传递函数的中间件thunk
import thunk from "redux-thunk"
let logger = createLogger() // 生成日志中间件logger,将它放在applyMiddleware方法之中，传入createStore方法，就完成了store.dispatch()的功能增强。

let store = createStore(rootReducer,composeWithDevTools(applyMiddleware(thunk,logger)))
// applyMiddleware 这个方法是 Redux 的原生方法，作用是将所有中间件组成一个数组，依次执行。
// applyMiddleware方法的三个参数，就是三个中间件。logger就一定要放在最后，否则输出结果会不正确。
export default store